var limsAcqConfigInstlib = Gikam.getPageObject({

    getEditListColumns : function() {
        return [ {
            checkbox : true
        }, {
              field : 'instructionName',
              title : 'T_LIMS_EQUIPT_ACQ_CONFIG_INST.INSTRUCTIONNAME',
              editor : true,
              validators : ['notEmpty', 'strLength(0, 120)'],
              width : 120,
          }, {
              field : 'instructionType',
              title : 'T_LIMS_EQUIPT_ACQ_CONFIG_INST.INSTRUCTIONTYPE',
              type : 'select',
              category : 'sys',
              editor : true,
              param : {
                  codeCategoryId : 'equiptInstructionType'
              }
          }, {
              field : 'instruction',
              title : 'T_LIMS_EQUIPT_ACQ_CONFIG_INST.INSTRUCTION',
              editor : true,
              type : 'richText',
              validators : ['notEmpty', 'strLength(0, 200)'],
              width : 350
          }, {
              field : 'hixFlag',
              title : 'T_LIMS_EQUIPT_ACQ_CONFIG_INST.HIXFLAG',
              editor : true,
              type : 'select',
              width : 120,
              firstBlank : false,
              category : 'sys',
              param : {
                  codeCategoryId : 'yesorno'
              },
              validators : ['notEmpty', 'strLength(0, 120)']
          }, {
              field : 'ext$.script',
              title : 'T_LIMS_EQUIPT_ACQ_CONFIG_INST.SCRIPT',
              contentAlign : 'center',
              formatter : function(index, value, row) {
                  var scriptId = row.scriptId;
                  if(Gikam.isNotEmpty(scriptId)){
                      //查看，更新
                      return Gikam.printf('<a href="javascript:;" onclick="limsAcqConfigInstlib.lookInstScript(\'{scriptId}\')">{look}</a>&nbsp;&nbsp;<a href="javascript:;" onclick="coreEquiptAcqConfig.updateInstScript(\'{id}\')">{update}</a>', {
                          id : row.id,
                          scriptId : scriptId,
                          look : '查看',
                          update : '更新',
                      });
                  }else{
                      //更新
                       return Gikam.printf('<a href="javascript:;" onclick="limsAcqConfigInstlib.updateInstScript(\'{id}\')">{update}</a>', {
                          id : row.id,
                          update : '更新',
                      });
                  }
              },
              validators : ['notEmpty', 'strLength(0, 1200)'],
              width : 120,
          },];
    },
//查看指令的解析脚本
    lookInstScript : function(scriptId){
        var _this = this;
        var modal=Gikam.create('modal', {
            id:'modal',
            title: '解析脚本',
            width:1100,
            height:600
        });
        Gikam.create('layout', {
            renderTo: modal.window.$dom,
            center : {
                items:[{
                    type : 'form',
                    url :  Gikam.printf(IFM_CONTEXT + '/secure/core/module/equipt/acq-scripts' + '/{id}', {
                        id : scriptId
                    }),
                    readonly : true,
                    id : 'lookScriptForm',
                    fields : [ {
                         field : 'id',
                         title : 'T_CORE_EQUIPT_ACQ_SCRIPT.ID',
                     }, {
                         field : 'description',
                         title : 'T_CORE_EQUIPT_ACQ_SCRIPT.DESCRIPTION',
                         validators : [ 'strLength[0,90]', 'notEmpty' ]
                     },  {
                         field : 'ext$.params',
                         title : 'T_CORE_EQUIPT_ACQ_SCRIPT.PARAMS',
                    },{
                         field : 'script',
                         title : 'T_CORE_EQUIPT_ACQ_SCRIPT.SCRIPT',
                         type : 'textarea',
                         height : 400,
                         colspan : 2
                     } ]
                }]
            },
        });
    },
    //更新指令的解析脚本
    updateInstScript : function(id){
        Gikam.create('modal', {
            title : Gikam.choose.getConfig('beanshell-choose').title,
            url : Gikam.choose.getConfig('beanshell-choose').url + Gikam.param({
                single : true
            }),
            onAfterClose : function(rows) {
                if (Gikam.isNotEmpty(rows)) {
                    Gikam.getComp('lims-acq-config-instlib-edit-list-grid').setData({
                        id : id,
                        scriptId : rows[0].id
                    },true);
                }
            }
        });
    },

    getBaseInfoFormFields : function() {
        return [{
            field : 'equiptName',
            title : 'T_LIMS_ACQ_CONFIG_INSTLIB.EQUIPTNAME',
            preInsert : true,
            validators: ['notEmpty']
        },  {
             field : 'instructionName',
             title : 'T_LIMS_EQUIPT_ACQ_CONFIG_INST.INSTRUCTIONNAME',
             preInsert : true,
             validators : ['strLength[0,40]']
         }, {
             field : 'instructionType',
             title : 'T_LIMS_EQUIPT_ACQ_CONFIG_INST.INSTRUCTIONTYPE',
             preInsert : true,
             type : 'select',
             category : 'sys',
             firstBlank : false,
             param : {
                 codeCategoryId : 'equiptInstructionType'
             },
             validators : ['strLength[0,40]']
         }, {
             field : 'hixFlag',
             title : 'T_LIMS_EQUIPT_ACQ_CONFIG_INST.HIXFLAG',
             type : 'select',
             preInsert : true,
             firstBlank : false,
             category : 'sys',
             param : {
                 codeCategoryId : 'yesorno'
             }
         }, {
             field : 'instruction',
             title : 'T_LIMS_EQUIPT_ACQ_CONFIG_INST.INSTRUCTION',
             preInsert : true,
             validators : ['strLength[0,100]']
         } ];
    },

    getSearchListColumns : function() {
        return [ {
            checkbox : true
        }, Gikam.status.getBpmnColumn(limsAcqConfigInstlib.workflow.dbTable), {
            field : 'instructionName',
            title : 'T_LIMS_ACQ_CONFIG_INSTLIB.INSTRUCTIONNAME'
        }, {
            field : 'hixFlag',
            title : 'T_LIMS_ACQ_CONFIG_INSTLIB.HIXFLAG'
        }, {
            field : 'instructionType',
            title : 'T_LIMS_ACQ_CONFIG_INSTLIB.INSTRUCTIONTYPE'
        }, {
            field : 'instruction',
            title : 'T_LIMS_ACQ_CONFIG_INSTLIB.INSTRUCTION'
        }, {
            field : 'remark',
            title : 'T_LIMS_ACQ_CONFIG_INSTLIB.REMARK'
        }, {
            field : 'equiptName',
            title : 'T_LIMS_ACQ_CONFIG_INSTLIB.EQUIPTNAME'
        }, {
            field : 'model',
            title : 'T_LIMS_ACQ_CONFIG_INSTLIB.MODEL'
        } ];
    },

    getChooseListColumns : function() {
        return [{
            field : 'ext$.manufacturer',
            title : 'T_LIMS_ACQ_CONFIG_MANUFACTURER.MANUFACTURER',
        }, {
             field : 'ext$.equiptName',
             title : 'T_LIMS_ACQ_CONFIG_MANUFACTURER.EQUIPTNAME',
             validators: ['notEmpty']
         }, {
             field : 'ext$.model',
             title : 'T_LIMS_ACQ_CONFIG_MANUFACTURER.MODEL',
         },{
            field : 'ext$.protocol',
            title : 'T_LIMS_ACQ_CONFIG_MANUFACTURER.PROTOCOL',
         },{
               field : 'instructionName',
               title : 'T_LIMS_EQUIPT_ACQ_CONFIG_INST.INSTRUCTIONNAME',
               validators : ['notEmpty', 'strLength(0, 120)'],
               width : 120,
           }, {
               field : 'instructionType',
               title : 'T_LIMS_EQUIPT_ACQ_CONFIG_INST.INSTRUCTIONTYPE',
               type : 'select',
               category : 'sys',
               param : {
                   codeCategoryId : 'equiptInstructionType'
               }
           }, {
               field : 'instruction',
               title : 'T_LIMS_EQUIPT_ACQ_CONFIG_INST.INSTRUCTION',
               type : 'richText',
               validators : ['notEmpty', 'strLength(0, 200)'],
               width : 350
           }, {
               field : 'hixFlag',
               title : 'T_LIMS_EQUIPT_ACQ_CONFIG_INST.HIXFLAG',
               type : 'select',
               width : 120,
               firstBlank : false,
               category : 'sys',
               param : {
                   codeCategoryId : 'yesorno'
               },
               validators : ['notEmpty', 'strLength(0, 120)']
           }, {
               field : 'ext$.script',
               title : 'T_LIMS_EQUIPT_ACQ_CONFIG_INST.SCRIPT',
               contentAlign : 'center',
               formatter : function(index, value, row) {
                   var scriptId = row.scriptId;
                   if(Gikam.isNotEmpty(scriptId)){
                       //查看，更新
                       return Gikam.printf('<a href="javascript:;" onclick="limsAcqConfigInstlib.lookInstScript(\'{scriptId}\')">{look}</a>', {
                           id : row.id,
                           scriptId : scriptId,
                           look : '查看',
                       });
                   }
               },
               validators : ['notEmpty', 'strLength(0, 1200)'],
               width : 120,
           },];
    },

    baseUrl : IFM_CONTEXT + '/secure/basemodule/common/eptstorage/acq-config-instlibs'
});
